const {
    Good
} = require('../../model/goods')
const {
    User
} = require('../../model/users')

module.exports = async (req, res, next) => {
    //获取用户传递过来的用户id和用户名和商品id
    let {
        userId,
        userName,
        productId
    } = req.body

    //判断userId和productId和userName是否有值
    if (userId && productId && userName) {
        //根据商品id查询商品
        const good = await Good.findOne({
            productId
        })
        // console.log(good)
        //根据id查询数据
        const users = await User.findOne({
            userId: userId
        })

        //对用户列表和商品列表进行判断
        if (users.length === 0) {
            res.json({
                status: 400,
                msg: '用户信息获取失败'
            })
        } else {
            if (good.length === 0) {
                res.json({
                    status: 400,
                    msg: '商品信息获取失败'
                })
            } else {
                let goodItem = ''
                //1.先判断购物车中是否已经有了该商品，有就让该商品的数量加1
                users.cartList.forEach(item => {
                    if (item.productId == productId) {
                        //证明购物车里面已经有一个相同的商品牌
                        //让商品数量加1
                        item.productNum++
                        //赋给goodItem
                        goodItem = item
                    }
                })
                //如果goodItem不为空，证明购物车有相同的商品 
                if (goodItem) {
                    users.save(function (err, doc) {
                        if (err) {
                            res.json({
                                status: 400,
                                msg: err.message
                            })
                        } else {
                            res.json({
                                status: 200,
                                msg: '添加商品成功',
                            })
                        }
                    })
                } else {
                    //如果goodItem为空，证明购物车没有该商品 
                    //向购物车列表添加两个参数，商品数量默认1，商品处于为选中状态为0，选中为1
                    good.productNum = 1
                    good.checked = '0'
                    //把查询出来的商品添加到购物车列表中
                    users.cartList.push(good)
                    //保存添加操作
                    users.save(function (err, doc) {
                        if (err) {
                            res.json({
                                status: 400,
                                msg: err.message
                            })
                        } else {
                            res.json({
                                status: 200,
                                msg: '添加商品成功',
                            })
                        }
                    })
                }
            }
        }
    } else {
        //userId没有值
        res.json({
            status: 400,
            msg: '添加商品失败，请先登陆!'
        })
    }

}